package me.firstapp.repository.weixin.kami.impl;
//package me.firstapp.repository.weixin.impl;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//import org.springframework.stereotype.Repository;
//
//import me.firstapp.common.utils.Page;
//import me.firstapp.common.utils.StrUtils;
//import me.firstapp.module.weixin.kami.KaMiProduct;
//import me.firstapp.repository.base.impl.EntityRepositoryImpl;
//import me.firstapp.repository.weixin.KaMiProductRepository;
//
//@Repository
//public class KaMiProductRepositoryImpl extends EntityRepositoryImpl<KaMiProduct> implements KaMiProductRepository {
//
//	@Override
//	protected Class<KaMiProduct> getPersistentClass() {
//		return KaMiProduct.class;
//	}
//
//	@Override
//	public List<KaMiProduct> findKaMiProductList() {
//		StringBuilder sql = new StringBuilder(" FROM KaMiProduct bean WHERE 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		sql.append(" AND bean.status = :status ");
//		parameters.put("status", KaMiProduct.STATUS_ON);
//
//		return super.query(KaMiProduct.class, sql.toString(), parameters);
//	}
//
//	@Override
//	public Page<KaMiProduct> findKaMiProductPage(Integer pageNo, Integer pageSize, Map<String, Object> searchParams,
//			String sortParam, String sortType) {
//		StringBuilder sql = new StringBuilder(" FROM KaMiProduct bean where 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		if (searchParams != null) {
//			Set<String> keys = searchParams.keySet();
//			for (String key : keys) {
//				Object value = searchParams.get(key);
//				if (value != null) {
//					if ("kaMiCategoryId".equals(key)) {
//						String _value = (String) value;
//						Long categoryId = Long.valueOf(_value);
//						sql.append(" AND bean.kaMiCategoryId =:kaMiCategoryId ");
//						parameters.put("kaMiCategoryId", categoryId);
//					} else if ("categoryName".equals(key)) {
//						sql.append(" AND bean.categoryName LIKE :categoryName ");
//						parameters.put("categoryName", "%" + value + "%");
//					} else {
//						sql.append(" AND bean." + key + " LIKE :" + key + " ");
//						parameters.put(key, "%" + value + "%");
//					}
//				}
//			}
//		}
//
//		if (StrUtils.isNotNULL(sortParam) && StrUtils.isNotNULL(sortType)) {
//			sql.append(" ORDER BY " + sortParam + " " + sortType);
//		}
//
//		return super.queryForPage(KaMiProduct.class, sql.toString(), parameters, pageNo, pageSize);
//	}
//
//	@Override
//	public List<KaMiProduct> findKaMiProductListByCategory(Long kaMiCategoryId, String channel) {
//		StringBuilder sql = new StringBuilder(" FROM KaMiProduct bean WHERE 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		sql.append(" AND bean.kaMiCategoryId = :kaMiCategoryId ");
//		parameters.put("kaMiCategoryId", kaMiCategoryId);
//
//		sql.append(" AND bean.channel = :channel ");
//		parameters.put("channel", channel);
//
//		sql.append(" AND bean.status = :status ");
//		parameters.put("status", KaMiProduct.STATUS_ON);
//
//		return super.query(KaMiProduct.class, sql.toString(), parameters);
//	}
//
//	@Override
//	public List<KaMiProduct> findExchangeKaMiProductList() {
//		StringBuilder sql = new StringBuilder(" FROM KaMiProduct bean WHERE 1=1 ");
//		Map<String, Object> parameters = new HashMap<>();
//
//		sql.append(" AND bean.channel = :channel ");
//		parameters.put("channel", KaMiProduct.CHANNEL_EXCHANGE);
//
//		sql.append(" AND bean.status = :status ");
//		parameters.put("status", KaMiProduct.STATUS_ON);
//		return super.query(KaMiProduct.class, sql.toString(), parameters);
//	}
//
//}
